/* Пример программы для доступа к устройствам с протоколом 1-Wire */

/* Микроконтроллер  AT90S2313 */

#include <90s2313.h> 	// подключаем заголовочный файл используемого 
					// микроконтроллера AVR

/* Перед подключением файла 1wire.h, объявим порт, используемый 
   для подключения шины 1-Wire  */

/* Шину 1-Wire подключим к PORTB микроконтроллера AT90S2313 
   Адрес порта находим в файле 90s2313.h в строке: sfrb PORTB=0x18;
   Для сигнала данных используем 0 бит порта */
#asm
.equ __w1_port=0x18
.equ __w1_bit=0
#endasm

/* Теперь можно подключать Функции 1-Wire  */ 
#include <1wire.h>

/* определим максимальное количество устройств, которое 
   может присутствовать на шине 1-Wire  */ 
#define max_number 10

/* распределим пространство SRAM для ROM кода и бита статуса */ 
unsigned char cod_rom[max_number][9];

/* Основная функция программы */ 

void main(void) 
{ 
unsigned char number_device; 	//Объявляем переменную number_device,
							// где будет храниться количество
							// устройств, присутствующих 
							// на шине 1-Wire 	

		/* инициализируем 1-Wire устройства на шине функцией w1_init */
 
		if(w1_init())
		/* Следующий составной оператор в фигурных скобках будет 
	   	   выполняться, если функция w1_init вернет значение, не равное 
	   	   0, т.е., если на шине 1-Wire присутствует ходя бы одно
   устройство */
		{
			/* определим, сколько 1-Wire  устройств подключено к шине,
   и сохраним их ROM коды в массиве cod_rom */
 
			number_device=w1_search(0xf0,cod_rom); 	 
			/* теперь в переменной number_device хранится количество
		   	   устройств, присутствующих на шине 1-Wire, а в массиве
		   	   cod_rom их ROM коды */	
		}

	...

		while (1); 		// заканчиваем программу бесконечным циклом 
}
